package com.ten.common.core.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 课程(EduCourse)实体类
 *
 * @author
 * @since 2022-12-07 23:29:11
 */
@Data
@TableName(value = "edu_course")
public class EduCourse {
    /**
     * 课程ID
     */
    @TableId
    private String id;
    /**
     * 课程讲师ID
     */
    private String teacherId;
    /**
     * 课程专业ID
     */
    private String subjectId;
    /**
     * 课程专业父级ID
     */
    private String subjectParentId;
    /**
     * 课程标题
     */
    private String title;
    /**
     * 课程销售价格，设置为0则可免费观看
     */
    private Double price;
    /**
     * 总课时
     */
    private Long lessonNum;
    /**
     * 课程封面图片路径
     */
    private String cover;
    /**
     * 销售数量
     */
    private Long buyCount;
    /**
     * 浏览数量
     */
    private Long viewCount;
    /**
     * 乐观锁
     */
    private Integer version;
    /**
     * 课程状态 Draft未发布  Normal已发布
     */
    private String status;
    /**
     * 逻辑删除 1（true）已删除， 0（false）未删除
     */
    private Byte isDeleted;
    /**
     * 创建时间
     */
    //从后端返回json数据到前端页面的时候使用
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "gmt_create",fill = FieldFill.INSERT)
    private LocalDateTime gmtCreate;
    /**
     * 更新时间
     */
    //从后端返回json数据到前端页面的时候使用
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "gmt_modified",fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime gmtModified;
    /**
     * 课程备注
     */
    private String remark;
    /**
     * 是否添加 0 否  1 是
     */
    private Integer isAdd;

    /**
     *
     * 前端需要的字符串，数据库中不存在
     *
     */
    @TableField(exist = false)
    private String subjectName;

    /**
     * 课程描述
     */
    @TableField(exist = false)
    private String description;
    /**
     * 课程审核状态码
     */
    @TableField(exist = false)
    private String checkStatus;
    /**
     * 审核的内容
     */
    @TableField(exist = false)
    private String checkContent;
    /**
     * 课程分类状态id
     */
    @TableField(exist = false)
    private String statusId;

}

